module Data.Finitary.Internal where

import Data.Coerce (Coercible, coerce)

{-# INLINE over #-}
over :: (Coercible a b, Coercible a' b') => (a -> b) -> (a -> a') -> b -> b'
over _ = coerce

{-# INLINE over2 #-}
over2 ::
  (Coercible a b, Coercible a' b') =>
  (a -> b) ->
  (a -> a -> a') ->
  b ->
  b ->
  b'
over2 _ = coerce
